# -*- coding:utf-8 -*-
import enum
# Python 从 3.4 版本开始引入了 enum 模块, 引入枚举类
from enum import IntEnum
# 使用 enum.unique 确保唯一值
@enum.unique
class EDataType(IntEnum):
    """
    目前支持的自定义的数据类型定义
    """
    Invalid = 1,
    Int = 2,
    Long = 3,
    Float = 4,
    Bool = 5,
    String = 6,
    Date = 7,
    Array = 8,
    Dict = 9,
    TableString = 10,


    @classmethod
    def value_str(cls, key):
        key_map = {
            cls.Invalid.value : "不可用类型",
            cls.Int.value : "短整型",
            cls.Long.value : "长整型",
            cls.Float.value : "浮点型",
            cls.Bool.value : "布尔型",
            cls.String.value : "字符串",
            cls.Date.value : "日期",
            cls.Array.value : "数字",
            cls.Dict.value : "字典",
            cls.TableString.value : "自定义表格",
 
        }
        return key_map.get(key, "")

    @classmethod
    def is_contains(cls, key):
        for name, dataType in cls.__members__.items():
            if key == dataType.value:
                return True
        return False

if __name__ == "__main__":
    print(EDataType.Int)
    print("---------------------------")
    print(EDataType.Int.value)
    print("---------------------------")
    print(EDataType.value_str(EDataType.Int.value))
    print("---------------------------")
    print(EDataType.is_contains(EDataType.Int.value))